์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์ค๋ฅ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ํจ๊ณผ์ ์ธ ์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์. ์์ธ ์ฒ๋ฆฌ์ ๋ํ ๊ธ๋ก๋ฒ ๊ด์ ์ ๋ชจ๋ฒ ์ฌ๋ก.
๊ณ ๊ธ ์ค๋ฅ ์ ํ: ์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ
์ํํธ์จ์ด ๊ฐ๋ฐ ์ธ๊ณ์์ ์ค๋ฅ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๊ฐ๋ ฅํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ ๊ณตํ๋ ํ์ค ์์ธ ์ ํ์ ๊ธฐ๋ณธ์ ๊ธฐ๋ฐ์ ์ ๊ณตํ์ง๋ง, ์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ, ํนํ ์ ์ ์๋ ๊ณ์ธต ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ ์ ์ด, ๋ช ํ์ฑ ๋ฐ ์ ์ฐ์ฑ์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋ค. ์ด ๊ธฐ์ฌ์์๋ ์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ณต์ก์ฑ์ ์์ธํ ์ดํด๋ณด๊ณ , ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ๊ธ๋ก๋ฒ ์ํํธ์จ์ด ํ๋ก์ ํธ์์ ๊ทธ ์ด์ , ๊ตฌํ ์ ๋ต ๋ฐ ์ค์ ์ ์ฉ ์ฌ๋ก๋ฅผ ์ดํด๋ด ๋๋ค.
ํจ๊ณผ์ ์ธ ์ค๋ฅ ์ฒ๋ฆฌ์ ์ค์์ฑ
์ฌ์ฉ์ ์ ์ ์์ธ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ํด ์์๋ณด๊ธฐ ์ ์ ํจ๊ณผ์ ์ธ ์ค๋ฅ ์ฒ๋ฆฌ์ ์ค์์ฑ์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ค๋ฅ๋ ์ํํธ์จ์ด์์ ๋ถ๊ฐํผํฉ๋๋ค. ์๋ชป๋ ์ฌ์ฉ์ ์ ๋ ฅ, ๋คํธ์ํฌ ์ค๋ฅ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ฌธ์ ๋ฐ ์๊ธฐ์น ์์ ์์คํ ๋์์ ํฌํจํ์ฌ ๋ค์ํ ์์ค์์ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ์ ํ ์ค๋ฅ ์ฒ๋ฆฌ๊ฐ ์์ผ๋ฉด ์ด๋ฌํ ๋ฌธ์ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ถฉ๋, ๋ฐ์ดํฐ ์์ ๋ฐ ์ด์ ํ ์ฌ์ฉ์ ํ๊ฒฝ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ํจ๊ณผ์ ์ธ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ์ค๋ฅ ๊ฐ์ง ๋ฐ ์๋ณ: ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ ์ ์ํ๊ฒ ์ฐพ์๋ ๋๋ค.
- ์ค๋ฅ๋ฅผ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ: ์๊ธฐ์น ์์ ์ถฉ๋์ ๋ฐฉ์งํ๊ณ ์ฌ์ฉ์์๊ฒ ์ ์ฉํ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค.
- ์ค๋ฅ๋ก๋ถํฐ ๋ณต๊ตฌ: ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ ์์ ์ธ ์๋์ ์ฌ๊ฐํ๋ ค๊ณ ์๋ํฉ๋๋ค.
- ๋๋ฒ๊น ๋ฐ ๋ถ์์ ์ํด ์ค๋ฅ ๋ก๊น : ํฅํ ์กฐ์ฌ ๋ฐ ๊ฐ์ ์ ์ํด ์ค๋ฅ๋ฅผ ์ถ์ ํฉ๋๋ค.
- ์ฝ๋ ํ์ง ์ ์ง ๊ด๋ฆฌ: ๋ฒ๊ทธ ์ํ์ ์ค์ด๊ณ ์ ๋ฐ์ ์ธ ์ํํธ์จ์ด ์์ ์ฑ์ ํฅ์์ํต๋๋ค.
ํ์ค ์์ธ ์ ํ๊ณผ ์ ํ ์ฌํญ ์ดํด
๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ผ๋ฐ์ ์ธ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ผ๋ จ์ ๊ธฐ๋ณธ ์ ๊ณต ์์ธ ์ ํ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด Java์๋ `IOException`, `NullPointerException`, `IllegalArgumentException`์ด ์๊ณ Python์๋ `ValueError`, `TypeError`, `FileNotFoundError`๊ฐ ์์ผ๋ฉฐ C++์๋ `std::exception` ๋ฐ ํ์ ํด๋์ค๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ํ์ค ์์ธ๋ ๊ธฐ๋ณธ ์์ค์ ์ค๋ฅ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ทธ๋ฌ๋ ํ์ค ์์ธ ์ ํ์ ๋ค์ ์์ญ์์ ๋ถ์กฑํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- ํน์ ์ฑ ๋ถ์กฑ: ํ์ค ์์ธ๋ ๋๋ฌด ์ผ๋ฐ์ ์ผ ์ ์์ต๋๋ค. ์ผ๋ฐ `IOException`์ ๋คํธ์ํฌ ์๊ฐ ์ด๊ณผ ๋๋ ํ์ผ ๊ถํ ๋ฌธ์ ์ ๊ฐ์ ํน์ ์์ธ์ ๋ํ ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ๋ชปํ ์ ์์ต๋๋ค.
- ์ ํ๋ ์ ๋ณด: ํ์ค ์์ธ๋ ๋๋ฒ๊น ๋ฐ ๋ณต๊ตฌ๋ฅผ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํ ์ถฉ๋ถํ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ์ง ๋ชปํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ํ์ผ ์ด๋ฆ์ด๋ ์คํจํ ์์ ์ด ํฌํจ๋์ง ์์ ์ ์์ต๋๋ค.
- ๋ถ๋ฅ์ ์ด๋ ค์: ์ ํ๋ ์ผ๋ จ์ ๊ด๋ฒ์ํ ์์ธ ์ ํ๋ง์ผ๋ก๋ ์ค๋ฅ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ทธ๋ฃนํํ๊ณ ๋ถ๋ฅํ๋ ๊ฒ์ด ์ด๋ ค์์ง๋๋ค.
์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ ์๊ฐ
์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ฉ์ธ์ ํน์ ํ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐํ๋๊ณ ์ ๋ฆฌ๋ ๋ฐฉ์์ ์ ๊ณตํ์ฌ ํ์ค ์์ธ ์ ํ์ ์ ํ ์ฌํญ์ ํด๊ฒฐํฉ๋๋ค. ์ด๋ฌํ ๊ณ์ธต ๊ตฌ์กฐ์๋ ๊ธฐ๋ณธ ์์ธ ํด๋์ค์์ ์์๋๋ ์์ฒด ์์ธ ํด๋์ค๋ฅผ ๋ง๋๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ํน์ ์ค๋ฅ ์ ํ ์ ์: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ผ๋ฆฌ์ ๋ง๊ฒ ์์ธ๋ฅผ ๋ง๋ญ๋๋ค. ์๋ฅผ ๋ค์ด ๊ธ์ต ์ ํ๋ฆฌ์ผ์ด์ ์๋ `InsufficientFundsException` ๋๋ `InvalidTransactionException`๊ณผ ๊ฐ์ ์์ธ๊ฐ ์์ ์ ์์ต๋๋ค.
- ์์ธํ ์ค๋ฅ ์ ๋ณด ์ ๊ณต: ์ค๋ฅ ์ฝ๋, ํ์์คํฌํ ๋๋ ๊ด๋ จ ๋งค๊ฐ๋ณ์์ ๊ฐ์ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์์ธ ๋ด์ ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํฉ๋๋ค.
- ์์ธ๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ตฌ์ฑ: ๊ด๋ จ ์ค๋ฅ๋ฅผ ๊ทธ๋ฃนํํ๊ณ ์๋ก ๊ฐ์ ๋ช ํํ ๊ด๊ณ๋ฅผ ์ค์ ํ๊ธฐ ์ํด ๊ณ์ธต ๊ตฌ์กฐ ๋ฐฉ์์ผ๋ก ์์ธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
- ์ฝ๋ ๊ฐ๋ ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ ๊ธฐ๋ฅ ํฅ์: ์๋ฏธ ์๋ ์ค๋ฅ ๋ฉ์์ง ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ ๋ ผ๋ฆฌ๋ฅผ ์ ๊ณตํ์ฌ ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ดํดํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
ํจ๊ณผ์ ์ธ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ ์ค๊ณ
ํจ๊ณผ์ ์ธ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์๊ตฌ ์ฌํญ์ ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๋ค์์ ์ค๊ณ๋ฅผ ์๋ดํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ฃผ์ ์์น์ ๋๋ค.
- ์ค๋ฅ ๋๋ฉ์ธ ์๋ณ: ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์ ๋ณ๊ฐ์ ์์ญ์ ์๋ณํ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ์์์๋ ์ฌ์ฉ์ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํธ ์์ฉ, ๋คํธ์ํฌ ํต์ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง์ด ์์ต๋๋ค.
- ๊ธฐ๋ณธ ์์ธ ํด๋์ค ์ ์: ๋ชจ๋ ์ฌ์ฉ์ ์ ์ ์์ธ๊ฐ ์์๋ฐ์ ๊ธฐ๋ณธ ์์ธ ํด๋์ค๋ฅผ ๋ง๋ญ๋๋ค. ์ด ํด๋์ค์๋ ๋ก๊น ๋ฐ ์ค๋ฅ ๋ฉ์์ง ํ์ ์ง์ ๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
- ํน์ ์์ธ ํด๋์ค ์์ฑ: ๊ฐ ์ค๋ฅ ๋๋ฉ์ธ์ ๋ํด ๋ฐ์ํ ์ ์๋ ์ค๋ฅ ์ ํ์ ๋ํ๋ด๋ ํน์ ์์ธ ํด๋์ค๋ฅผ ์ ์ํฉ๋๋ค. ์ด๋ฌํ ํด๋์ค๋ ๊ธฐ๋ณธ ์์ธ ํด๋์ค ๋๋ ๊ณ์ธต ๊ตฌ์กฐ์ ์ค๊ฐ ํด๋์ค์์ ์์๋ฐ์์ผ ํฉ๋๋ค.
- ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ ์ถ๊ฐ: ์ค๋ฅ ์ฝ๋, ํ์์คํฌํ ๋ฐ ๊ด๋ จ ๋งค๊ฐ๋ณ์์ ๊ฐ์ ์ค๋ฅ์ ๋ํ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์์ธ ํด๋์ค์ ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ ๋ฉค๋ฒ๋ฅผ ํฌํจํฉ๋๋ค.
- ๊ด๋ จ ์์ธ ๊ทธ๋ฃนํ: ๊ด๋ จ์ฑ์ ๋ฐ์ํ๋ ๊ณ์ธต ๊ตฌ์กฐ๋ก ์์ธ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ค๊ฐ ์์ธ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ จ ์ค๋ฅ๋ฅผ ๊ณตํต ์์ ํญ๋ชฉ ์๋์ ๊ทธ๋ฃนํํฉ๋๋ค.
- ๊ตญ์ ํ(i18n) ๋ฐ ํ์งํ(l10n) ๊ณ ๋ ค: ์์ธ ๋ฉ์์ง ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ค๊ณํ ๋ ๊ตญ์ ํ๋ฅผ ์ง์ํด์ผ ํฉ๋๋ค. ๋ฉ์์ง๋ฅผ ํ๋์ฝ๋ฉํ์ง ๋ง๊ณ ๋ฆฌ์์ค ๋ฒ๋ค ๋๋ ๊ธฐํ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ฒ์ญ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค. ์ด๋ ๋ค์ํ ์ธ์ด ๋ฐ ๋ฌธํ์ ๋ฐฐ๊ฒฝ์์ ์ฌ์ฉ๋๋ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ํนํ ์ค์ํฉ๋๋ค.
- ์์ธ ๊ณ์ธต ๊ตฌ์กฐ ๋ฌธ์ํ: ๋ชฉ์ , ์ฉ๋ ๋ฐ ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ฌ ์์ธ ํด๋์ค์ ๋ํ ๋ช ํํ ๋ฌธ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ๋ฌธ์๋ ์์น๋ ์๊ฐ๋์ ๊ด๊ณ์์ด ํ๋ก์ ํธ์์ ์์ ํ๋ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค.
๊ตฌํ ์์ (Java, Python, C++)
Java, Python ๋ฐ C++์์ ์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Java ์์
1. ๊ธฐ๋ณธ ์์ธ ํด๋์ค:
public class CustomException extends Exception {
private String errorCode;
public CustomException(String message, String errorCode) {
super(message);
this.errorCode = errorCode;
}
public String getErrorCode() {
return errorCode;
}
}
2. ํน์ ์์ธ ํด๋์ค:
public class FileIOException extends CustomException {
public FileIOException(String message, String errorCode) {
super(message, errorCode);
}
}
public class NetworkException extends CustomException {
public NetworkException(String message, String errorCode) {
super(message, errorCode);
}
}
public class DatabaseException extends CustomException {
public DatabaseException(String message, String errorCode) {
super(message, errorCode);
}
}
public class InsufficientFundsException extends CustomException {
private double currentBalance;
private double transactionAmount;
public InsufficientFundsException(String message, String errorCode, double currentBalance, double transactionAmount) {
super(message, errorCode);
this.currentBalance = currentBalance;
this.transactionAmount = transactionAmount;
}
public double getCurrentBalance() {
return currentBalance;
}
public double getTransactionAmount() {
return transactionAmount;
}
}
3. ์ฌ์ฉ๋ฒ:
try {
// ... code that might throw an exception
if (balance < transactionAmount) {
throw new InsufficientFundsException("Insufficient funds", "ERR_001", balance, transactionAmount);
}
} catch (InsufficientFundsException e) {
System.err.println("Error: " + e.getMessage());
System.err.println("Error Code: " + e.getErrorCode());
System.err.println("Current Balance: " + e.getCurrentBalance());
System.err.println("Transaction Amount: " + e.getTransactionAmount());
// Handle the exception, e.g., display an error message to the user
} catch (CustomException e) {
System.err.println("General error: " + e.getMessage());
System.err.println("Error Code: " + e.getErrorCode());
}
Python ์์
1. ๊ธฐ๋ณธ ์์ธ ํด๋์ค:
class CustomException(Exception):
def __init__(self, message, error_code):
super().__init__(message)
self.error_code = error_code
def get_error_code(self):
return self.error_code
2. ํน์ ์์ธ ํด๋์ค:
class FileIOException(CustomException):
pass
class NetworkException(CustomException):
pass
class DatabaseException(CustomException):
pass
class InsufficientFundsException(CustomException):
def __init__(self, message, error_code, current_balance, transaction_amount):
super().__init__(message, error_code)
self.current_balance = current_balance
self.transaction_amount = transaction_amount
def get_current_balance(self):
return self.current_balance
def get_transaction_amount(self):
return self.transaction_amount
3. ์ฌ์ฉ๋ฒ:
try:
# ... code that might raise an exception
if balance < transaction_amount:
raise InsufficientFundsException("Insufficient funds", "ERR_001", balance, transaction_amount)
except InsufficientFundsException as e:
print(f"Error: {e}")
print(f"Error Code: {e.get_error_code()}")
print(f"Current Balance: {e.get_current_balance()}")
print(f"Transaction Amount: {e.get_transaction_amount()}")
# Handle the exception, e.g., display an error message to the user
except CustomException as e:
print(f"General error: {e}")
print(f"Error Code: {e.get_error_code()}")
C++ ์์
1. ๊ธฐ๋ณธ ์์ธ ํด๋์ค:
#include <exception>
#include <string>
class CustomException : public std::exception {
public:
CustomException(const std::string& message, const std::string& error_code) : message_(message), error_code_(error_code) {}
virtual const char* what() const noexcept override {
return message_.c_str();
}
std::string getErrorCode() const {
return error_code_;
}
private:
std::string message_;
std::string error_code_;
};
2. ํน์ ์์ธ ํด๋์ค:
#include <string>
class FileIOException : public CustomException {
public:
FileIOException(const std::string& message, const std::string& error_code) : CustomException(message, error_code) {}
};
class NetworkException : public CustomException {
public:
NetworkException(const std::string& message, const std::string& error_code) : CustomException(message, error_code) {}
};
class DatabaseException : public CustomException {
public:
DatabaseException(const std::string& message, const std::string& error_code) : CustomException(message, error_code) {}
};
class InsufficientFundsException : public CustomException {
public:
InsufficientFundsException(const std::string& message, const std::string& error_code, double current_balance, double transaction_amount) : CustomException(message, error_code), current_balance_(current_balance), transaction_amount_(transaction_amount) {}
double getCurrentBalance() const {
return current_balance_;
}
double getTransactionAmount() const {
return transaction_amount_;
}
private:
double current_balance_;
double transaction_amount_;
};
3. ์ฌ์ฉ๋ฒ:
#include <iostream>
#include <string>
int main() {
double balance = 100.0;
double transactionAmount = 150.0;
try {
// ... code that might throw an exception
if (balance < transactionAmount) {
throw InsufficientFundsException("Insufficient funds", "ERR_001", balance, transactionAmount);
}
} catch (const InsufficientFundsException& e) {
std::cerr << "Error: " << e.what() << std::endl;
std::cerr << "Error Code: " << e.getErrorCode() << std::endl;
std::cerr << "Current Balance: " << e.getCurrentBalance() << std::endl;
std::cerr << "Transaction Amount: " << e.getTransactionAmount() << std::endl;
// Handle the exception, e.g., display an error message to the user
} catch (const CustomException& e) {
std::cerr << "General error: " << e.what() << std::endl;
std::cerr << "Error Code: " << e.getErrorCode() << std::endl;
}
return 0;
}
์ด ์์ ์์๋ ๋ค์ํ ์ธ์ด๋ก ์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๊ธฐ๋ณธ ๋ฐ ํน์ ์์ธ ํด๋์ค๋ฅผ ์์ฑํ๊ณ , ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ณ , `try-catch` ๋ธ๋ก์ ์ฌ์ฉํ์ฌ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ธ์ด ์ ํ์ ํ๋ก์ ํธ ์๊ตฌ ์ฌํญ ๋ฐ ๊ฐ๋ฐ์ ์ ๋ฌธ ์ง์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๊ธ๋ก๋ฒ ํ๊ณผ ํจ๊ป ์์ ํ ๋ ํ๋ก์ ํธ ์ ๋ฐ์ ๊ฑธ์ณ ์ฝ๋ ์คํ์ผ ๋ฐ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ์์ ์ผ๊ด์ฑ์ ํ์ ์ ํฅ์์ํต๋๋ค.
๊ธ๋ก๋ฒ ํ๊ฒฝ์์ ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ๋ ์์ธ ์ฒ๋ฆฌ ์ ๋ต์ ํจ๊ณผ๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ํน๋ณํ ๊ณ ๋ ค ์ฌํญ์ ์ ์ฉํด์ผ ํฉ๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค.
- ๊ตญ์ ํ(i18n) ๋ฐ ํ์งํ(l10n):
- ์ค๋ฅ ๋ฉ์์ง ์ธ๋ถํ: ์ฝ๋์์ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ํ๋์ฝ๋ฉํ์ง ๋ง์ญ์์ค. ๋ฒ์ญ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ฉด ์ธ๋ถ ๋ฆฌ์์ค ํ์ผ(์: ์์ฑ ํ์ผ, JSON ํ์ผ)์ ์ ์ฅํฉ๋๋ค.
- ๋ก์บ๋ณ ์์ ์ฌ์ฉ: ๋ ์ง, ์๊ฐ, ํตํ ๋ฐ ์ซ์ ํ์์ ํฌํจํ์ฌ ์ฌ์ฉ์์ ๋ก์บ์ ๋ฐ๋ผ ์ค๋ฅ ๋ฉ์์ง์ ํ์์ ์ง์ ํฉ๋๋ค. ์๋ก ๋ค๋ฅธ ๊ตญ๊ฐ ๋ฐ ์ง์ญ์์ ์ฌ์ฉ๋๋ ๋ค์ํ ํตํ ์์คํ ๊ณผ ๋ ์ง/์๊ฐ ๊ท์น์ ๊ณ ๋ คํฉ๋๋ค.
- ์ธ์ด ์ ํ ์ ๊ณต: ์ฌ์ฉ์์๊ฒ ์ค๋ฅ ๋ฉ์์ง์ ๋ํด ์ ํธํ๋ ์ธ์ด๋ฅผ ์ ํํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค.
- ์๊ฐ๋ ๊ณ ๋ ค ์ฌํญ:
- UTC๋ก ํ์์คํฌํ ์ ์ฅ: ์๊ฐ๋ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ๋ฒ์ฉ ํ์ ์๊ฐ(UTC)์ผ๋ก ํ์์คํฌํ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ํ์๋ฅผ ์ํด ํ์ง ์๊ฐ์ผ๋ก ๋ณํ: ์ฌ์ฉ์์๊ฒ ํ์์คํฌํ๋ฅผ ํ์ํ ๋๋ ํ์ง ์๊ฐ๋๋ก ๋ณํํฉ๋๋ค.
- ์ผ๊ด ์ ์ฝ ์๊ฐ(DST) ๊ณ ๋ ค: ์ฝ๋๊ฐ DST ์ ํ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋์ง ํ์ธํฉ๋๋ค.
- ํตํ ์ฒ๋ฆฌ:
- ํตํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ: ํตํ ๋ณํ ๋ฐ ์์์ ์ฒ๋ฆฌํ๋ ค๋ฉด ์ ์ฉ ํตํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ API๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ํตํ ๊ธฐํธ ๋ฐ ์์ ๊ณ ๋ ค: ์ฌ์ฉ์์ ๋ก์บ์ ๋ง๋ ์ ์ ํ ๊ธฐํธ์ ์์์ ์ฌ์ฉํ์ฌ ํตํ ๊ฐ์ ํ์ํฉ๋๋ค.
- ์ฌ๋ฌ ํตํ ์ง์: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ๋ฌ ํตํ๋ก ๊ฑฐ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ ํตํ ์ ํ ๋ฐ ๋ณํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค.
- ๋ฌธํ์ ๋ฏผ๊ฐ์ฑ:
- ๋ฌธํ์ ์ผ๋ก ๋ฏผ๊ฐํ์ง ์์ ์ธ์ด ๋ฐฉ์ง: ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์์ฑํ ๋ ๋ฌธํ์ ๋ฏผ๊ฐ์ฑ์ ์ ์ํ์ญ์์ค. ํน์ ๋ฌธํ๊ถ์์ ๋ถ์พํ๊ฑฐ๋ ๋ถ์ ์ ํ ์ ์๋ ์ธ์ด๋ฅผ ํผํ์ญ์์ค.
- ๋ฌธํ์ ๊ท๋ฒ ๊ณ ๋ ค: ์ฌ๋๋ค์ด ์ค๋ฅ๋ฅผ ์ธ์ํ๊ณ ๋์ํ๋ ๋ฐฉ์์ ๋ฌธํ์ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํฉ๋๋ค. ์ผ๋ถ ๋ฌธํ๊ถ์์๋ ๋ณด๋ค ์ง์ ์ ์ธ ์์ฌ ์ํต์ ์ ํธํ ์ ์์ง๋ง, ๋ค๋ฅธ ๋ฌธํ๊ถ์์๋ ๋ณด๋ค ๋ถ๋๋ฌ์ด ์ ๊ทผ ๋ฐฉ์์ ์ ํธํ ์ ์์ต๋๋ค.
- ๋ค์ํ ์ง์ญ์์ ํ ์คํธ: ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ฌธํ์ ์ผ๋ก ์ ์ ํ๊ณ ์ดํดํ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํด ๋ค์ํ ์ง์ญ๊ณผ ๋ค์ํ ๋ฐฐ๊ฒฝ์ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํฉ๋๋ค.
- ๋ก๊น
๋ฐ ๋ชจ๋ํฐ๋ง:
- ์ค์ ์ง์ค์ ๋ก๊น : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ๋ถ๋ถ(๋ค์ํ ์ง์ญ์ ๋ฐฐํฌ๋ ๋ถ๋ถ ํฌํจ)์์ ์ค๋ฅ๋ฅผ ์์งํ๊ณ ๋ถ์ํ๊ธฐ ์ํด ์ค์ ์ง์ค์ ๋ก๊น ์ ๊ตฌํํฉ๋๋ค. ๋ก๊ทธ ๋ฉ์์ง์๋ ์ถฉ๋ถํ ์ปจํ ์คํธ(์: ์ฌ์ฉ์ ID, ๊ฑฐ๋ ID, ํ์์คํฌํ, ๋ก์บ)๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
- ์ค์๊ฐ ๋ชจ๋ํฐ๋ง: ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฅ์จ์ ์ถ์ ํ๊ณ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์ค์๊ฐ์ผ๋ก ์๋ณํฉ๋๋ค. ์ด๋ ํ ์ง์ญ์ ๋ฌธ์ ๊ฐ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ํนํ ์ค์ํฉ๋๋ค.
- ์๋ฆผ: ์น๋ช ์ ์ธ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์๋ฆผ์ ์ค์ ํฉ๋๋ค. ๊ธ๋ก๋ฒ ํ์ ์ ํฉํ ์๋ฆผ ๋ฐฉ๋ฒ(์: ์ด๋ฉ์ผ, ๋ฉ์์ง ์ฑ ๋๋ ๊ธฐํ ํต์ ํ๋ซํผ)์ ์ ํํฉ๋๋ค.
- ํ ํ์
๋ฐ ์ปค๋ฎค๋์ผ์ด์
:
- ๊ณต์ ์ค๋ฅ ์ฝ๋ ์ ์: ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋๋ ๋ชจ๋ ์ค๋ฅ ์ฝ๋๋ฅผ ์ ์ํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ค์ ์ง์ค์ ์ ์ฅ์ ๋๋ ๋ฌธ์๋ฅผ ๋ง๋ญ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ ์ ์ฒด์์ ์ผ๊ด์ฑ๊ณผ ๋ช ํ์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
- ์ปค๋ฎค๋์ผ์ด์ ์ฑ๋: ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ๊ณ ๋ ผ์ํ๊ธฐ ์ํ ๋ช ํํ ์ปค๋ฎค๋์ผ์ด์ ์ฑ๋์ ์ค์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ ์ฉ ์ฑํ ์ฑ๋, ๋ฌธ์ ์ถ์ ์์คํ ๋๋ ์ ๊ธฐ์ ์ธ ํ ํ์๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค.
- ์ง์ ๊ณต์ : ์ค๋ฅ ์ฒ๋ฆฌ ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ํน์ ์ค๋ฅ ์๋๋ฆฌ์ค์ ๊ด๋ จํ์ฌ ํ ๊ตฌ์ฑ์ ๊ฐ์ ์ง์ ๊ณต์ ๋ฅผ ์ฅ๋ คํฉ๋๋ค. ์์ธ ์ฒ๋ฆฌ ์ฝ๋์ ๋ํ ๋๋ฃ ๊ฒํ ๋ฅผ ๊ถ์ฅํฉ๋๋ค.
- ๋ฌธ์ ์ ๊ทผ์ฑ: ์์ธ ๊ณ์ธต ๊ตฌ์กฐ, ์ค๋ฅ ์ฝ๋ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํฌํจํ์ฌ ์์ธ ์ฒ๋ฆฌ ์ ๋ต์ ๋ํ ๋ฌธ์๋ฅผ ์์น๋ ์ธ์ด์ ๊ด๊ณ์์ด ๋ชจ๋ ํ ๊ตฌ์ฑ์์ด ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๋๋ก ํฉ๋๋ค.
- ํ
์คํ
๋ฐ ํ์ง ๋ณด์ฆ:
- ์ฒ ์ ํ ํ ์คํธ: ๋จ์ ํ ์คํธ, ํตํฉ ํ ์คํธ ๋ฐ ์ฌ์ฉ์ ์น์ธ ํ ์คํธ(UAT)๋ฅผ ํฌํจํ์ฌ ์ค๋ฅ ์ฒ๋ฆฌ ๋ก์ง์ ์ฒ ์ ํ ํ ์คํธํฉ๋๋ค. ๋ค์ํ ๋ก์บ, ์๊ฐ๋ ๋ฐ ํตํ ์ค์ ์ผ๋ก ํ ์คํธํฉ๋๋ค.
- ์ค๋ฅ ์๋ฎฌ๋ ์ด์ : ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค๋ฅ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋์ง ํ์ธํ๊ธฐ ์ํด ๋ค์ํ ์ค๋ฅ ์๋๋ฆฌ์ค๋ฅผ ์๋ฎฌ๋ ์ด์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฝ๋์ ์ค๋ฅ๋ฅผ ์ฃผ์ ํ๊ฑฐ๋ ๋ชจ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ ์์ ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ํผ๋๋ฐฑ: ์ค๋ฅ ๋ฉ์์ง ๋ฐ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๊ด๋ จํ์ฌ ์ฌ์ฉ์๋ก๋ถํฐ ํผ๋๋ฐฑ์ ์์งํฉ๋๋ค. ์ด ํผ๋๋ฐฑ์ ์ฌ์ฉํ์ฌ ์ค๋ฅ ์ฒ๋ฆฌ ์ ๋ต์ ๊ฐ์ ํฉ๋๋ค.
์ฌ์ฉ์ ์ ์ ์์ธ ๊ณ์ธต ๊ตฌ์กฐ ์ฌ์ฉ์ ์ด์
์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ฉด ํ์ค ์์ธ ์ ํ๋ง ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์๋นํ ์ด์ ์ด ์์ต๋๋ค.
- ์ฝ๋ ๊ตฌ์ฑ ๊ฐ์ : ๊ณ์ธต ๊ตฌ์กฐ๋ ์ค๋ฅ ์ฒ๋ฆฌ ๋ก์ง์ ๋ํ ๊น๋ํ๊ณ ์ ๋ฆฌ๋ ๊ตฌ์กฐ๋ฅผ ์ด์งํ์ฌ ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ฝ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค.
- ์ฝ๋ ๊ฐ๋ ์ฑ ํฅ์: ์๋ฏธ ์๋ ์์ธ ์ด๋ฆ๊ณผ ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ฅ์ ํน์ฑ๊ณผ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
- ํน์ ์ฑ ์ฆ๊ฐ: ์ฌ์ฉ์ ์ ์ ์์ธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋งค์ฐ ๊ตฌ์ฒด์ ์ธ ์ค๋ฅ ์ ํ์ ์ ์ํ์ฌ ์ค๋ฅ ์ฒ๋ฆฌ์ ๋ํ ๋์ฑ ์ธ๋ถํ๋ ์ ์ด๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ์ค๋ฅ ์ฒ๋ฆฌ ๋จ์ํ: ๊ณ์ธต ๊ตฌ์กฐ์์ ์์ ์์ธ๋ฅผ ์ก์ ๋จ์ผ `catch` ๋ธ๋ก์ผ๋ก ์ฌ๋ฌ ๊ด๋ จ ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋๋ฒ๊น ๋ฐ ๋ฌธ์ ํด๊ฒฐ ๊ฐ์ : ์ค๋ฅ ์ฝ๋ ๋ฐ ํ์์คํฌํ์ ๊ฐ์ ์์ธ ๋ด์ ์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ๋ ๋๋ฒ๊น ๋ฐ ๋ฌธ์ ํด๊ฒฐ์ ์ ์ฉํ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฌ์ฌ์ฉ์ฑ ๊ฐ์ : ์ฌ์ฉ์ ์ ์ ์์ธ ํด๋์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก ๋ค๋ฅธ ๋ถ๋ถ์์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ํ ์คํ ์ฉ์ด: ์ฌ์ฉ์ ์ ์ ์์ธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ฅ ์ฒ๋ฆฌ ๋ก์ง์ ํน๋ณํ ํ๊ฒํ ํ๋ ๋จ์ ํ ์คํธ๋ฅผ ๋ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
- ํ์ฅ์ฑ: ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฑ์ฅํ๊ณ ๋ฐ์ ํจ์ ๋ฐ๋ผ ์๋ก์ด ์ค๋ฅ ์ ํ์ ์ถ๊ฐํ๊ณ ๊ธฐ์กด ์ค๋ฅ ์ ํ์ ํ์ฅํ๋ ๊ฒ์ด ๋ ์ฌ์์ง๋๋ค.
์ ์ฌ์ ๋จ์ ๋ฐ ๊ณ ๋ ค ์ฌํญ
์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ๋ ๋ง์ ์ด์ ์ ์ ๊ณตํ์ง๋ง ๊ณ ๋ คํด์ผ ํ ๋ช ๊ฐ์ง ์ ์ฌ์ ๋จ์ ์ด ์์ต๋๋ค.
- ๊ฐ๋ฐ ์๊ฐ ์ฆ๊ฐ: ์ฌ์ฉ์ ์ ์ ์์ธ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๊ณ ๊ตฌํํ๋ ค๋ฉด ์ฒ์์ ์ถ๊ฐ ๊ฐ๋ฐ ์๊ฐ์ด ํ์ํ ์ ์์ต๋๋ค.
- ๋ณต์ก์ฑ: ์ง๋์น๊ฒ ๋ณต์กํ ์์ธ ๊ณ์ธต ๊ตฌ์กฐ๋ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค. ์ธ๋ถ์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ ๊ฐ์ ๊ท ํ์ ์ ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ณผ๋ํ๊ฒ ๊น๊ฑฐ๋ ๋ณต์กํ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ง ๋ง์ญ์์ค.
- ๊ณผ๋ค ์ฌ์ฉ ๊ฐ๋ฅ์ฑ: ๊ฐ๋ฅํ ๋ชจ๋ ์ค๋ฅ ์กฐ๊ฑด์ ๋ํด ์์ธ ํด๋์ค๋ฅผ ๋ง๋ค๋ ค๋ ์ ํน์ ํผํ์ญ์์ค. ๊ฐ์ฅ ์ค์ํ๊ณ ๋น๋ฒํ ์ค๋ฅ์ ๋ํ ์์ธ๋ฅผ ๋ง๋๋ ๋ฐ ์ง์คํฉ๋๋ค.
- ์ฝ๋ ๋น๋ํ: ๋๋ฌด ๋ง์ ์ฌ์ฉ์ ์ ์ ์์ธ ํด๋์ค๋ฅผ ๋ง๋ค๋ฉด ์ฝ๋ ๋น๋ํ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๊ฐ ์์ธ ํด๋์ค๊ฐ ๊ฐ์น๋ฅผ ์ ๊ณตํ๋์ง ํ์ธํฉ๋๋ค.
์ด๋ฌํ ๋จ์ ์ ์ํํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ ์ฌํญ๊ณผ ํฅํ ์ฑ์ฅ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ฌ ์์ธ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ์คํ๊ฒ ๊ณํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ ์ง ๊ด๋ฆฌ ๋ฐ ํ์ ์ ์ฉ์ดํ๊ฒ ํ๋ ค๋ฉด ๊ณ์ธต ๊ตฌ์กฐ์ ์ค๊ณ๋ฅผ ๋ฌธ์ํํฉ๋๋ค.
๊ฒฐ๋ก
์ฌ์ฉ์ ์ ์ ์์ธ ์ ํ ๊ณ์ธต ๊ตฌ์กฐ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์ค๋ฅ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๊ธฐ์ ์ ๋๋ค. ๊ตฌ์ฒด์ ์ด๊ณ ์ ์ ๋ฆฌ๋ ์์ธ ํด๋์ค๋ฅผ ์์ฑํ์ฌ ์ฝ๋ ๊ฐ๋ ์ฑ์ ๊ฐ์ ํ๊ณ , ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๋จ์ํํ๋ฉฐ, ๋๋ฒ๊น ๋ฐ ๋ฌธ์ ํด๊ฒฐ์ ์ ์ฉํ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ํนํ ๊ธ๋ก๋ฒ ๊ณ ๋ ค ์ฌํญ๊ณผ ํจ๊ป ์ด๋ฌํ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ฉด ๋์ฑ ๊ฐ๋ ฅํ๊ณ , ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ๋ฉฐ, ์ฌ์ฉ์ ์นํ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์์ฝํ๋ฉด, ์ํํธ์จ์ด ํ์ง์ ํฅ์์ํค๊ธฐ ์ํด ์ฌ์ฉ์ ์ ์ ์์ธ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์์ฉํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธ๋ก๋ฒ ์๋ฏธ๋ฅผ ๊ณ ๋ คํ๊ณ i18n, l10n, ์๊ฐ๋ ๋ฐ ํตํ ์ฒ๋ฆฌ๋ฅผ ์ ์คํ๊ฒ ๊ตฌํํฉ๋๋ค. ์ ์คํ ๊ณํ๊ณผ ๊ท์จ ์๋ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋๋ ์์น์ ๊ด๊ณ์์ด ์ค์ ์ธ๊ณ์ ์๊ฒฉํจ์ ๊ฒฌ๋ ์ ์๋ ์ํํธ์จ์ด ์์คํ ์ ๋ง๋ค ์ ์์ต๋๋ค.